home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 676-700 / 682 / reqchange / reqchange.man < prev    next >
Text File  |  1995-03-18  |  35KB  |  842 lines

  1.  
  2.  
  3.         ReqChange V1.08          User manual           ReqChange V1.08
  4.  
  5.  
  6.               ReqChange V1.08  © Copyright 1992 Magnus Holmgren
  7.               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  8.                        Replace some common requesters.
  9.                            Release date: 16 Apr 92
  10.  
  11.  
  12.                                  Legal stuff
  13.                                  ~~~~~~~~~~~
  14.  
  15.            This program  is  FREEWARE,  which means you may spread and
  16.         use   this   program   freely,   as   long  as  the  following
  17.         restrictions are followed: 
  18.  
  19.            1) All   files  are  copied  in  an  unmodified  state.  If
  20.         additional  information  is  needed,  place  it  in a separate
  21.         file.  Preferably  redistribute  in  the original archive form
  22.         (*.run).  
  23.  
  24.            2) The  copying  is done on a non-commercial and non-profit
  25.         basis  only.  A  copy fee to replace media costs, postage etc.
  26.         may  be  charged,  and  mustn't  exceed  the  fee to obtain an
  27.         AmigaLibDisk from Fred Fish.  
  28.  
  29.            3) The  copier/spreader  is not claiming the Copyright © of
  30.         this program.  
  31.  
  32.            Any exceptions  from  these  restrictions  requires written
  33.         permission from the author, Magnus Holmgren.  
  34.  
  35.  
  36.  
  37.                                  DISCLAIMER:
  38.                                  ~~~~~~~~~~~
  39.  
  40.            This program  is  supplied  'as  is'.  No warranty is given
  41.         that  the program will work exactly as documented. I assume no
  42.         responsibility  for  the  consequences  of using this program.
  43.         That  is:  Any  loss  of data, malfunction etc. caused by this
  44.         program  can't  be  blamed on me. If you use this program it's
  45.         on your own risk.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.                                     Page 1
  61.  
  62.  
  63.         ReqChange V1.08          User manual           ReqChange V1.08
  64.  
  65.  
  66.                               What is ReqChange?
  67.                               ~~~~~~~~~~~~~~~~~~
  68.  
  69.            Every now  and  then,  the programs you use needs to inform
  70.         you  of  some important thing, or perhaps it needs the name of
  71.         a  file  to  operate on. When that happens, the programs often
  72.         shows  a requester of some kind, allowing you to easily select
  73.         between  a few options, or enter a filename. Before OS 2.0 (OS
  74.         =  Operating  System),  every  program  had to fix such things
  75.         itself  -  except  for  information requesters with one or two
  76.         answers   -   perhaps  by  using  some  shared  library  which
  77.         contained the code (req.library is a good old one).  
  78.  
  79.            With OS  2.0,  such  requesters was included. How nice! Now
  80.         all  programs  will  use  the same requester, because everyone
  81.         who  has OS 2.0, will also have these requesters, and there is
  82.         no  need  for  the user to install some special library in the
  83.         LIBS: directory.  
  84.  
  85.            There was  just a few small problems with these requesters:
  86.         They  weren't  that  good.  For  one  thing,  the  information
  87.         requesters  where  glued  to  the  upper  left  corner  of the
  88.         screen,  you  had  to  use the mouse to confirm them - or some
  89.         more  or  less  cryptic key combination - and they didn't look
  90.         *that*  nice.  The  file  requester was generally ugly, and it
  91.         was unbelievably slow, at least on a standard Amiga 500.  
  92.  
  93.            Arq came  around.  That  program  did  something  about the
  94.         information  requesters, but nothing about the file requester.
  95.         It  was  also  very  big,  ~40  Kb, and it was a bit slow on a
  96.         standard  Amiga  500  (that's  the  price  of  all  those nice
  97.         animations :).  
  98.  
  99.            There seemed  to be no good solution to this problem. But I
  100.         wasn't  the  only one who thought like this! Nico François was
  101.         one  who  though  a  bit  like  me  here.  So he made this new
  102.         library:  ReqTools,  which  is  © Copyright Nico François. And
  103.         yes,  I  know; Yet another library. But this is a good one! It
  104.         contains  a  bunch  of  requesters  which  are powerful to the
  105.         user,  yet  very  easy  to  use.  They  looked  good, and were
  106.         generally  fast  and  efficient.  First  time  I  saw  them  I
  107.         thought:  "Why  can't all programs use these instead???". So I
  108.         decided  to do the best I could to allow all programs use this
  109.         great  library,  and ReqChange is the program which fixes this
  110.         as  far  as possible. I had some experience in writing patches
  111.         (e.g.  NewRequest, which modified the OS 1.3 AutoRequest to be
  112.         much  easier  to  use), so I knew what had to be done to get a
  113.         safe program.  
  114.  
  115.            The earlier  versions  of ReqChange only worked on OS 2.04.
  116.         This  version  of  ReqChange  works on 1.3 systems too (when I
  117.         say  1.3, I really mean 1.2/1.3).  You need arp.library, and a
  118.  
  119.  
  120.                                     Page 2
  121.  
  122.  
  123.         ReqChange V1.08          User manual           ReqChange V1.08
  124.  
  125.  
  126.         1.3 version of reqtools.library (included) for this though.  
  127.  
  128.            What ReqChange  will  do  is  to  change  (i.e.  patch) the
  129.         system   requesters,  and  some  other  requesters  in  common
  130.         libraries  to  use the ones found in ReqTools.  The requesters
  131.         that are changed are currently these: 
  132.  
  133.  
  134.                           AutoRequest & EasyRequest
  135.  
  136.            These are  two very similar requesters, which the OS uses a
  137.         lot  (to the user, they are identical; to the programmer, they
  138.         only  differ  in  the  way  they  are  called). "About" in the
  139.         Workbench  menu  uses  EasyRequest,  and  the requesters which
  140.         asks  you  to  insert  a disk ("Please insert...") are of this
  141.         kind  too.  AutoRequest is mostly used by programs written for
  142.         OS 1.3.  
  143.  
  144.            EasyRequest is  a  new function in OS 2.04, so it's only if
  145.         you have OS 2.04 this function will be patched.  
  146.  
  147.            The requester  in  ReqTools  supports  a  few more keyboard
  148.         alternatives,  so  you  won't need to use the mouse to confirm
  149.         it. These keys are: 
  150.  
  151.            RETURN, Y,  V  which  yields a positive response. It really
  152.         means  that  it  will be equivalent with pressing the leftmost
  153.         gadget.  All  programs  should have a positive response on the
  154.         leftmost  gadget,  but  this  isn't  always  case (curse those
  155.         programs! :). This gadget has boldface text.  
  156.  
  157.            ESC, N,  R,  B  which yields a negative response. It really
  158.         means  that  it will be equivalent with pressing the rightmost
  159.         gadget.   And  again,  this  isn't  necessarily  the  negative
  160.         response, but it "should" be.  
  161.  
  162.            If the  requester  only  has one gadget, you can use any of
  163.         the keys to reply to it.  
  164.  
  165.  
  166.                                  FileRequest
  167.  
  168.            The filerequester  in  arp.library  (ARP  for short). Once,
  169.         this  was more or less "the" standard filerequester, but it is
  170.         a  bit  old,  and doesn't look good at all under OS 2.04. It's
  171.         only  ARP V1.3 (arp.library V39+) that is supported! ReqChange
  172.         will  refuse  to  open arp.library with a version number lower
  173.         than 39.  
  174.  
  175.  
  176.                            RequestFile & AslRequest
  177.  
  178.  
  179.  
  180.                                     Page 3
  181.  
  182.  
  183.         ReqChange V1.08          User manual           ReqChange V1.08
  184.  
  185.  
  186.            These are  the new file and font requesters in OS 2.04. The
  187.         code for these is located in asl.library (ASL for short).  
  188.  
  189.  
  190.                                  TextRequest
  191.  
  192.            This REQ   function   is   similar   to   AutoRequest   and
  193.         EasyRequest,  but  it  is a bit more powerful. The features of
  194.         REQ V2 are fully supported (timeout and abortmask).  
  195.  
  196.  
  197.                            GetString & NewGetString
  198.  
  199.            These routines  are  in  req.library  (REQ  for short), and
  200.         provides  a  string requester (only difference between the two
  201.         is the way they are called).  
  202.  
  203.  
  204.                                    GetLong
  205.  
  206.            Another REQ  function.  This is a requester very similar to
  207.         the  GetString  requester,  but  you can only enter numbers in
  208.         this  one.  It also shows the max and min values you can enter
  209.         (at least REQ V2 has this feature).  
  210.  
  211.  
  212.                    ColorRequester & ExtendedColorRequester
  213.  
  214.            These are  the  color  requesters  in  REQ  (these two only
  215.         differs  in  the  way  they are called). The type of centering
  216.         used  for  this  requester is the same as the one used for all
  217.         file requesters.  
  218.  
  219.  
  220.                                 FileRequester
  221.  
  222.            This is the file and font requester in REQ.  
  223.  
  224.  
  225.                                 Compatibility
  226.                                 ~~~~~~~~~~~~~
  227.  
  228.            Some of  the  features  that  exists  in  ARP  and ASL does
  229.         mostly  exists  in  ReqTools  too, but often in a more or less
  230.         incompatible  way.  Thus,  some features are not supported (at
  231.         least  not  yet). This "ignorance" will at most cause a bit of
  232.         inconvenience  to  you;  a  missing  gadget  which "should" be
  233.         there,  a  few  files are shown that really shouldn't be shown
  234.         etc.  But  as  far  as I know, there aren't many programs that
  235.         uses  these  features,  so  who cares?? :) ReqTools lacks some
  236.         minor features in ASL, but I guess you'll never notice that.  
  237.  
  238.  
  239.  
  240.                                     Page 4
  241.  
  242.  
  243.         ReqChange V1.08          User manual           ReqChange V1.08
  244.  
  245.  
  246.            REQ's filerequester  has a limit on the number of files the
  247.         user  may  multiselect. As ReqTools doesn't have such a thing,
  248.         it  means  that some of the files you multiselect might not be
  249.         returned  to  the  program  (this  also might happen if you're
  250.         very  low  on  memory).  This  is  not a real problem, but you
  251.         should be aware of it.  
  252.  
  253.            Also note  that  you  cannot select a directory if you also
  254.         have  a  filename gadget with ReqTools - even if you select Ok
  255.         -  as  you  can with ASL. This is the only "real" problem with
  256.         ReqChange  that  I  know  of  at  the  moment.  :( This causes
  257.         AssignX  to  have some troubles with the "Assign..." function.
  258.         You  will not be able to select a directory to assign to, only
  259.         files.  Because  of  this,  ReqChange  has  a  similar feature
  260.         builtin.  If  you  use  this  feature, it will seem as AssignX
  261.         isn't  installed,  so  you  might  as well remove it from your
  262.         startup.  Please  refer  to  the  NOASSIGN parameter below for
  263.         more information.  
  264.  
  265.  
  266.                                  Installation
  267.                                  ~~~~~~~~~~~~
  268.  
  269.            ReqChange is  very  easy  to  install.  Simply  run it. But
  270.         remember   that  the  file  reqtools.library  (of  appropriate
  271.         version)  must  be  in  your  LIBS: drawer. The Install script
  272.         places   this  file  there  for  you.  ReqChange  autodetaches
  273.         nicely,  which means you do not need to "Run" it, if you start
  274.         it  from  a  CLI. If anything goes wrong, a requester will pop
  275.         up,  informing  you  about  it,  possibly allowing you to take
  276.         different  actions.  If  you  have  started the program from a
  277.         CLI, some of the messages will appear in that CLI-window.  
  278.  
  279.            In the  case  that  the  C-startup  part  (which  I  can do
  280.         nothing  about) fails, you will not see that! But that doesn't
  281.         happen  *that*  often.  What  can  go  wrong  here is that the
  282.         startup  code  fails  to open dos.library, or ReqChange simply
  283.         didn't   load,   because   you're   very  low  on  memory.  If
  284.         intuition.library  didn't  open  ReqChange will terminate with
  285.         the  return  code  300. If no message appears ReqChange should
  286.         have installed ok.  
  287.  
  288.            Note that  if  you  are  using  WShell  2.0, you will see a
  289.         message   saying   "***Hanging  forbid!"  when  ReqChange  has
  290.         detached  ok  (ReqChange  does  some more intializations after
  291.         this,  and  these  might  fail). This is not a bug (neither in
  292.         WShell  nor in ReqChange). It must be done this way because of
  293.         the way the autodetaching currently is implemented.  
  294.  
  295.            MFR users  who  wants  to  use ReqChange for everything but
  296.         the  filerequesters  (for  which  they  use  MFR :), should do
  297.         this:  First  run  ReqChange, and after that, MFR (if both MFR
  298.  
  299.  
  300.                                     Page 5
  301.  
  302.  
  303.         ReqChange V1.08          User manual           ReqChange V1.08
  304.  
  305.  
  306.         and   ReqChange   are   in  WBStartup,  set  the  STARTPRI  in
  307.         ReqChange's  tooltypes  to  at  least  1  higher than the same
  308.         value  in  MFR (if no such value can be found, it will default
  309.         to zero)). I've tried this, and it works fine.  
  310.  
  311.            NOTE: Although  you  have  installed ReqChange, there might
  312.         be  programs  active,  which allocated some ASL buffers before
  313.         ReqChange  got active. If this is the case, ReqChange will not
  314.         change  that  particular  request  (i.e.  you'll  see  the old
  315.         Asl-requester).  Also  note  that  you cannot exit while there
  316.         are  programs  around that are using a requester, or have some
  317.         buffers  that  was  allocated  after  ReqChange was activated.
  318.         Quitting   these   programs   will  enable  you  to  terminate
  319.         ReqChange.  
  320.  
  321.  
  322.                                    Options
  323.                                    ~~~~~~~
  324.  
  325.            There are  a  few  options  you  can use, to make ReqChange
  326.         behave  the  way you want. These options can be used either in
  327.         the  CLI or via the ToolTypes fields in the icon. Here follows
  328.         a  list  over all options. If the option in question ends with
  329.         "/K",  it  means  that  it  should  be  followed by additional
  330.         information,  here  in  numeric  form. If the option ends with
  331.         "/S",  it  means that the presence of this string is enough to
  332.         activate  it. Note that the "/K" and "/S" extensions shouldn't
  333.         be  entered! If an option is preceeded by an equal sign ("="),
  334.         it  means  that  the  text  in  front  of  it can be used as a
  335.         shortcut  to  the  option  (e.g.  using  IH  means the same as
  336.         IGNOREHEIGHT).  A "(OS 2.04)" comment means that the option in
  337.         question is used on OS 2.04 systems only. The options are: 
  338.  
  339.  
  340.                                MIH=MINHEIGHT/K
  341.  
  342.            This option   specifies   the   minimum   height   of   the
  343.         filerequester  window.  Any  height  requests  lower than this
  344.         will  be  ignored  (and the requester will be MINHEIGHT pixels
  345.         high).  To  disable  this  feature,  use the height 0. Default
  346.         value is 0.  
  347.  
  348.  
  349.                                MAH=MAXHEIGHT/S
  350.  
  351.            This option   specifies   the   maximum   height   of   the
  352.         filerequester  window.  Any  height requestes higher that this
  353.         will  be  ignored  (and the requester will be MAXHEIGHT pixels
  354.         high).  To  disable  this feature, use the height -1 (which in
  355.         fact  will  turn into 4 294 967 295...). Default height is -1.
  356.         Note  that  this  and the previous parameter should be entered
  357.         as  you would like it to be on a non-interlaced screen. If the
  358.  
  359.  
  360.                                     Page 6
  361.  
  362.  
  363.         ReqChange V1.08          User manual           ReqChange V1.08
  364.  
  365.  
  366.         requester  is  about  to  appear  on  a  screen, which visible
  367.         height  is  more  than 400 pixels, these parameter values will
  368.         be doubled.  
  369.  
  370.  
  371.                                 CS=CENTERSCR/S
  372.  
  373.            This switch  will  make  all  information  requesters to be
  374.         centered  on the screen, instead of centering them beneath the
  375.         mouse-pointer.  
  376.  
  377.  
  378.                                 CW=CENTERWIN/S
  379.  
  380.            This switch  is  similar to CENTERSCR, but it will make all
  381.         information  requesters  centered  within their parent window,
  382.         if  the  task  provided  such  a window. If not, the requester
  383.         will  be centered on the screen. This switch will override the
  384.         CENTERSCR switch if both are used at the same time.  
  385.  
  386.  
  387.                               FCS=FRCENTERSCR/S
  388.  
  389.            This switch  is  similar  to  CENTERSCR,  but this one will
  390.         affect all filerequesters.  
  391.  
  392.  
  393.                               FCW=FRCENTERWIN/S
  394.  
  395.            This switch  is  similar  to FRCENTERSCR, but this one will
  396.         affect all filerequesters.  
  397.  
  398.  
  399.                                CT=CENTERTEXT/S
  400.  
  401.            Although the  name is similar to some other switches above,
  402.         the  difference  in  action  is  large.  This switch makes all
  403.         information  requesters' text centered.  That is, each line of
  404.         the  text in the requester is centered. This will definitively
  405.         look   bad   if  the  text  was  centered  "by  hand"  by  the
  406.         programmer, but it is not common.  
  407.  
  408.  
  409.                                    NOARP/S
  410.  
  411.            This switch   tells   ReqChange  to  not  change  the  file
  412.         requester  in  ARP. This means that the ARP filerequester will
  413.         behave  as  normal.  If this is specified, ReqChange will make
  414.         no  attempt  to  open ARP. Thus, you don't need arp.library to
  415.         be  able  to  run  ReqChange. NOTE: If you are running OS 1.3,
  416.         you  need  ARP!  The  NOARP switch is still useable though (to
  417.         disable the filerequester patch).  
  418.  
  419.  
  420.                                     Page 7
  421.  
  422.  
  423.         ReqChange V1.08          User manual           ReqChange V1.08
  424.  
  425.  
  426.  
  427.  
  428.                               NOASL/S (OS 2.04)
  429.  
  430.            Same as  NOARP, but now it's the filerequesters in ASL that
  431.         won't  be  changed.   This  could  be useful if it comes a new
  432.         version  of  ASL  which is much better (or it's inner workings
  433.         have  changed in such way that ReqChange fails to simulate the
  434.         file requester. See below on the topic "Problems").  
  435.  
  436.  
  437.                                    NOREQ/S
  438.  
  439.            Same as  NOARP  and  NOASL,  but  now  its the functions in
  440.         req.library  that  won't  be changed (and req.library won't be
  441.         opened).  
  442.  
  443.  
  444.                                    NOKEYS/S
  445.  
  446.            Disable most   of   the  keyboard  shortcuts  in  the  text
  447.         requesters,  except  for  a few. If used, only Left Amiga 'V',
  448.         Left  Amiga  'B'  and  ESC  can  be  used.  Left  Amiga 'V' is
  449.         equivalent  with  the  leftmost  gadgets.  Left  Amiga  'B' is
  450.         equivalent with the rightmost gadget, as is the ESC key.  
  451.  
  452.  
  453.                                NOCX/S (OS 2.04)
  454.  
  455.            This option  stops ReqChange from making its presence known
  456.         to  the  Exchange  program. I don't really know if this option
  457.         is  needed,  but  I  added  it  anyway.   ReqChange won't open
  458.         commodities.library if you use this switch.  
  459.  
  460.  
  461.                                   NOASSIGN/S
  462.  
  463.            This switch  will  disable the code that checks for "Please
  464.         insert  volume..."  requesters. When such a requester pops up,
  465.         and  this  switch  NOT  is  used,  three  gadgets will show up
  466.         instead   of   the   normal  two.  The  extra  one  is  called
  467.         "Assign..."  and lets you do just that, enter an assignment to
  468.         use.   Now   you   don't   need  any  Shell/CLI  to  do  this.
  469.         Unfortunately,   you   cannot   select  any  files  with  this
  470.         requester  (not  so  oftenly used), due to how ReqTools works,
  471.         but  it can be very handy anyway. This feature will always use
  472.         ReqTools  for  requesters.  Thanks  to  Steve  Tibbet  for his
  473.         program  AssignX  which made me implement this feature - which
  474.         is  more  or  less  a  simplified  AssignX - since his program
  475.         didn't  work  that  well  if ReqChange was installed, I had to
  476.         write one of my own instead. :) 
  477.  
  478.  
  479.  
  480.                                     Page 8
  481.  
  482.  
  483.         ReqChange V1.08          User manual           ReqChange V1.08
  484.  
  485.  
  486.  
  487.  
  488.            If arp.library,  asl.library  or  req.library  couldn't  be
  489.         opened   for  some  reason,  you  will  be  presented  with  a
  490.         requester  informing  you  about  the fact.  It also has three
  491.         gadgets, namely: 
  492.  
  493.            "Retry"  -  Try  to  open the library again. Now you have a
  494.         chance to install the library in question before proceeding.  
  495.  
  496.            "Ignore" -  Don't  care  about it. This also means that the
  497.         requesters in the library in question won't be changed.  
  498.  
  499.            "Quit"   - Simply quits ReqChange.  
  500.  
  501.            You will  also  see  this  requester if commodities.library
  502.         didn't  open  (commodities.library  is  an OS 2.04 thingy). If
  503.         you  select  the  "Ignore" gadget, the result will be the same
  504.         as it would be if you had used the "NOCX" switch.  
  505.  
  506.            If reqtools.library  won't open, you will be presented with
  507.         a similar requester, but that one lacks the "Ignore" gadget.  
  508.  
  509.  
  510.                               Removing ReqChange
  511.                               ~~~~~~~~~~~~~~~~~~
  512.  
  513.            You can remove ReqChange in tree ways: 
  514.  
  515.            1) Use  the Exchange program. Select ReqChange in the list,
  516.         and click on "Kill". This feature required OS 2.04.  
  517.  
  518.            2) Run  ReqChange  again. The screen will flash to indicate
  519.         that   a   termination  message  was  sent  to  the  installed
  520.         ReqChange.  
  521.  
  522.            3) Send  ReqChange  a break signal (to do this you can e.g.
  523.         use  Xoper).   ReqChange will quit on any of the break signals
  524.         C, D, E or F.  
  525.  
  526.            Although you   tell   ReqChange   to   quit,  this  doesn't
  527.         necessarily  mean  that  the  program  will terminate. If some
  528.         other  program  have  changed  any  requester  after ReqChange
  529.         installed  itself  (e.g.  AssignX),  there  are some allocated
  530.         buffers  around,  or  a  requester  is  active, then ReqChange
  531.         can't  be  removed.  If this is the case, a requester will pop
  532.         up, telling you about the specific problem.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.                                     Page 9
  541.  
  542.  
  543.         ReqChange V1.08          User manual           ReqChange V1.08
  544.  
  545.  
  546.                                    Problems
  547.                                    ~~~~~~~~
  548.  
  549.            If a  program  uses  the  pattern  matching feature in ASL,
  550.         there  is  a  small  problem,  because  ReqTools handles .info
  551.         files   (i.e.   icons)   differently.   Now,  e.g.  IconEdit's
  552.         "Project/Open..."  menu selection open up a file requester for
  553.         the  user  to choose an icon to load. Since the user obviously
  554.         only  should  choose  an  icon  file, the pattern used here is
  555.         "#?.info",  which  would show all files ending with .info. But
  556.         ReqTools  doesn't  count the .info file as a "real" file. Each
  557.         .info  file  is attached to its "parent" (e.g.  ReqChange.info
  558.         is attached to ReqChange), if such is available.  
  559.  
  560.            If the  pattern says that a parent shouldn't be shown, then
  561.         the  corresponding  .info  file  will  not  be  shown  either,
  562.         regardless  of  the state of the "Show/Hide *.info" gadget. If
  563.         the  gadget  says "Show *.info", all ".info" files which has a
  564.         visible  parent  is  shown (if there is no parent, the ".info"
  565.         file  will  be shown anyway), otherwise not. Since all parents
  566.         fail  because  of  the  #?.info  pattern,  no  files  will  be
  567.         visible.  
  568.  
  569.            To solve  this  problem,  ReqChange  checks  to  see if the
  570.         pattern  contains the string ".info", and if this is the case,
  571.         ReqChange  will  not  use  any  pattern  in the requester (the
  572.         pattern   is  still  placed  in  the  FileRequester  structure
  573.         anyway, if an ASL_Pattern tag is used).  
  574.  
  575.            Since there  are  problems  like this, ReqChange will force
  576.         ReqTools  to  show  a pattern gadget, if a pattern of any kind
  577.         is used.  
  578.  
  579.            There can  be  other  problems  with  this program. Of what
  580.         type  I  do  not  really  know.  To some extent, ARP can cause
  581.         problems,  but  such problems shouldn't be serious in any way.
  582.         At  most,  your  life  at  the computer may be slightly harder
  583.         :).  
  584.  
  585.            The REQ  patches  are  as  compatible  as  possible.  There
  586.         should  be no problems with req.library V2 or lower, but newer
  587.         versions   *might*  cause  some  problems.   This  is  because
  588.         ReqChange  uses  some  fields  in  the filerequester structure
  589.         that  are  reserved for future use to get directory-buffering.
  590.         As  long  as  these are not used by any application, it should
  591.         work ok.  
  592.  
  593.            The ASL  patches  should  work  ok too. These patches might
  594.         cause  problems  with  newer  versions  of  ASL  than  V37.27.
  595.         Although  I  don't  see  this  as  likely,  there  is  still a
  596.         potential  danger  (and  since  I  can't predict the future, I
  597.         don't know what to do to eliminate this :).  
  598.  
  599.  
  600.                                    Page 10
  601.  
  602.  
  603.         ReqChange V1.08          User manual           ReqChange V1.08
  604.  
  605.  
  606.  
  607.            If you  should  experience  problems  with the ASL changes,
  608.         use  the NOASL switch to disable the changes, or reinstall the
  609.         older  version  of  asl.library,  all  depending on your taste
  610.         (and why not send me a note about the problem?).  
  611.  
  612.            There were  other  problems  during  the  development.  The
  613.         Autodocs  are  incomplete  about the file/font requester. E.g.
  614.         there  is  a  ASL_ModeList  tag which is only mentioned in the
  615.         asl.h  file,  but  not a word about what it does.  Since there
  616.         seems  to  be no similar thing in ReqTools, I guess it doesn't
  617.         matter that much.  
  618.  
  619.  
  620.                                 About the code
  621.                                 ~~~~~~~~~~~~~~
  622.  
  623.            ReqChange is  written  almost  completely  in  C, with some
  624.         small  assembler  stubs.  Yet  the program is only about 14 Kb
  625.         big  (source  is  ~90  Kb). I compiled it with DICE (assembler
  626.         part  was  assembled  with  the  Devpac  assembler), which can
  627.         generate  quite  small  code  (especially  if you're using the
  628.         _main  entry  point!  This  way  you  get  rid  of  a *lot* of
  629.         "unneeded" code that the compiler otherwise would drag in).  
  630.  
  631.            The assembler  part  takes  care  of  pushing  the register
  632.         arguments  (if  so  needed)  on  the stack and then call the C
  633.         code  (some of the patches are written entierly i asm though),
  634.         stack  switching - if that is needed, other kinds of glue, and
  635.         the code that handles the auto-detaching.  
  636.  
  637.  
  638.                             Technical information
  639.                             ~~~~~~~~~~~~~~~~~~~~~
  640.  
  641.            Those of  you  who  knows  a bit about programming might be
  642.         interested about this.  
  643.  
  644.            No hooks  are supported in the ARP requester patch. This is
  645.         because  ARP  guarantees  that a4 will be left untouched. Some
  646.         work  is  needed to fix this, and since I have no program that
  647.         uses  this  feature, I haven't bothered to fix it.. Please let
  648.         me  know  if  you  would  like support for the DoWild hook (as
  649.         this is the only thing ReqTools has).  
  650.  
  651.            Each patch  checks the stack, and if the free space left is
  652.         less  than  4  Kb,  a  new stack on 4 Kb will be allocated and
  653.         switched  in  (there is a function in exec that might do this,
  654.         but  there is no Autodocs on it, so I have used my own version
  655.         instead,  which  seems  to  work  just fine), to ensure enough
  656.         space  for  the requester functions. If no memory is available
  657.         for  a  new  stack,  or  the  patch  runs  out  of memory, the
  658.  
  659.  
  660.                                    Page 11
  661.  
  662.  
  663.         ReqChange V1.08          User manual           ReqChange V1.08
  664.  
  665.  
  666.         function  in  question  will  return failure.  Upon returning,
  667.         the  stack (if a new one was allocated) will be freed, and the
  668.         original will be restored.  
  669.  
  670.  
  671.                              Future improvements
  672.                              ~~~~~~~~~~~~~~~~~~~
  673.  
  674.            In the  future  I might add some of the special features in
  675.         the  ARP  filerequester.  But is it worth the trouble? I doubt
  676.         that,  since the only code I know about that uses any of them,
  677.         is code I've written myself... :) 
  678.  
  679.            Some of  the  features  AssignX has (Deny, Mount) might get
  680.         implemented  too,  but  since I've *never* used them yet (I've
  681.         had  AssignX  installed a while), I didn't bother to implement
  682.         these features in this version.  
  683.  
  684.            I'm also  thinking  on  adding directory caching to the ASL
  685.         patches  (this  *will*  be  optional  if I decide to implement
  686.         it).  This could waste quite a bit of memory, but if you think
  687.         you can efford the memory, why not? 
  688.  
  689.            If you  would  like  to  see  some  of  these improvements,
  690.         please  let  me  know!  That would increase the chance of them
  691.         getting implemented a *lot*.  
  692.  
  693.            And ofcourse, any bugs will be removed.  
  694.  
  695.  
  696.                                 Author contact
  697.                                 ~~~~~~~~~~~~~~
  698.  
  699.            If you  have  some  comments  about this program, regarding
  700.         problems,  ideas  of improvements etc., feel free to send me a
  701.         note  (and  I will certainly not refuse donations of any kind,
  702.         since I'm a poor student! :) to this address: 
  703.  
  704.                                Magnus Holmgren
  705.                              Rydsvägen 254  A:14
  706.                              S-582 51  Linköping
  707.                                     SWEDEN
  708.  
  709.  
  710.            If you  don't  like  snail mail, you can send me e-mail via
  711.         Internet   or   FidoNet.   Via  Internet,  use  any  of  these
  712.         addresses: 
  713.  
  714.            cmh@augs.se
  715.            magnus_holmgren@augs.se
  716.            cmh@lysator.liu.se
  717.            d91magho@und.ida.liu.se
  718.  
  719.  
  720.                                    Page 12
  721.  
  722.  
  723.         ReqChange V1.08          User manual           ReqChange V1.08
  724.  
  725.  
  726.  
  727.  
  728.            FidoNet mail should go to AUGS BBS in Linköping, Sweden: 
  729.  
  730.            "Magnus Holmgren" @ 2:204/404 
  731.  
  732.  
  733.            The latest  version  of  ReqChange  is  also  available for
  734.         anonymous     ftp     at     lysator.liu.se.     Check     the
  735.         pub/amiga/ReqChange directory.  
  736.  
  737.  
  738.                                Acknowledgments
  739.                                ~~~~~~~~~~~~~~~
  740.  
  741.            There are  a  few persons I feel I must thank, because they
  742.         have  in  some  ways  made  this program possible (or at least
  743.         better) : 
  744.  
  745.            Matt Dillon   -  For  his  great  DICE  compiler  (and  for
  746.         answering  all  my  (more or less silly) questions about C and
  747.         DICE).  
  748.  
  749.            Nico François  - For reqtools.library. This library started
  750.         this little program.  
  751.  
  752.            Stefan Boberg  -  For  helping  me  when ReqChanged crashed
  753.         occasionally.  (He  discovered  that  the problem probably was
  754.         stack   overflow.  After  adding  stack  switching  code,  the
  755.         problem have never been seen since).  
  756.  
  757.            Stefan Becker  -  For  providing  an example (the source to
  758.         ToolManager) on how to add a broker to Commodities.  
  759.  
  760.            Eddy Carrol  -  For  his  Res function (and to Olaf `Olsen'
  761.         Barthel,  because  this function was included in term, and the
  762.         source  to  that  program was included :), which enabled me to
  763.         make  ReqChange autodetach. I did some changes in the function
  764.         though, so now it should be 100% safe and reliable (I hope).  
  765.  
  766.  
  767.                                Revision history
  768.                                ~~~~~~~~~~~~~~~~
  769.  
  770.            Please read the History.Doc file for a revision history! 
  771.  
  772.  
  773.  
  774.                           May the Amiga be with you!
  775.  
  776.  
  777.  
  778.  
  779.  
  780.                                    Page 13
  781.  
  782.  
  783.         ReqChange V1.08          User manual           ReqChange V1.08
  784.  
  785.  
  786.  
  787.  
  788.                               Table of contents
  789.                               ~~~~~~~~~~~~~~~~~
  790.         Legal stuff.............................................    1
  791.         Disclaimer..............................................    1
  792.         What is ReqChange?......................................    1
  793.            AutoRequest & EasyRequest............................    3
  794.            FileRequest..........................................    3
  795.            RequestFile & AslRequest.............................    3
  796.            TextRequest..........................................    4
  797.            GetString & NewGetString.............................    4
  798.            GetLong..............................................    4
  799.            ColorRequester & ExtendedColorRequester..............    4
  800.            FileRequester........................................    4
  801.         Compatibility...........................................    4
  802.         Installation............................................    5
  803.         Options.................................................    6
  804.            MINHEIGHT............................................    6
  805.            MAXHEIGHT............................................    6
  806.            CENTERSCR............................................    7
  807.            CENTERWIN............................................    7
  808.            FRCENTERSCR..........................................    7
  809.            FRCENTERWIN..........................................    7
  810.            CENTERTEXT...........................................    7
  811.            NOARP................................................    7
  812.            NOASL................................................    8
  813.            NOREQ................................................    8
  814.            NOKEYS...............................................    8
  815.            NOCX.................................................    8
  816.            NOASSIGN.............................................    8
  817.         Removing ReqChange......................................    9
  818.         Problems................................................    9
  819.         About the code..........................................   11
  820.         Technical information...................................   11
  821.         Future improvements.....................................   12
  822.         Author contact..........................................   12
  823.            Snail mail address...................................   12
  824.            E-mail addresses.....................................   12
  825.         Acknowledgements........................................   13
  826.         Revision history........................................   13
  827.         Table of contents.......................................   14
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.                                    Page 14
  841.  
  842.